/**
 * 
 */
package tur.br.moradadosol.dao.implementacao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Collection;

import tur.br.moradadosol.dao.MensagemDAO;
import tur.br.moradadosol.model.Mensagem;
import tur.br.moradadosol.util.Conf;
import tur.br.moradadosol.util.Util;

/**
 * @author alex
 */
public class SQLMensagemDAO implements MensagemDAO {
	
	private Connection connection;
	
	public SQLMensagemDAO(Connection conn) {
		connection = conn;
	}

	/* (non-Javadoc)
	 * @see tur.br.moradadosol.dao.MensagemDAO#delete(int)
	 */
	public void delete(int codigo) throws Exception {
		
		StringBuffer sql = new StringBuffer("Update ");
		sql.append(Conf.getProp("TABLE_MENSAGEM"));
		sql.append(" set MSG_DT_EXC=SYSDATE() ");
		sql.append(" where CD_MENSAGEM=? ");

		PreparedStatement pstm = connection.prepareStatement(sql.toString());

		pstm.setInt(1, codigo);

		pstm.executeUpdate();

	}

	/* (non-Javadoc)
	 * @see tur.br.moradadosol.dao.MensagemDAO#getAllMessages()
	 */
	public Collection getAllMessages() throws Exception {
		
		StringBuffer sql = new StringBuffer("Select * FROM ");
		sql.append(Conf.getProp("TABLE_MENSAGEM") + " M ");
		
		PreparedStatement pstm = null;
		
		ResultSet rs = null;
		
		try {
			pstm = connection.prepareStatement(sql.toString());
			
			rs = pstm.executeQuery();
			
			Collection msgs = new ArrayList();
			
			while(rs.next()) {
				msgs.add(getMensagem(rs));
			}
			
			return msgs;
			
			
		} catch (Exception e) {
			throw e;
		} finally {
			if(rs!=null)rs.close();
			if(pstm!=null)pstm.close();
		}
	}

	private Mensagem getMensagem(ResultSet rs) throws Exception {
		Mensagem m = new Mensagem();
		
		m.setCod(rs.getInt("CD_MENSAGEM"));
		m.setDtExc(Util.getDataCalendar(rs.getTimestamp("MSG_DT_EXC")));
		m.setDtInc(Util.getDataCalendar(rs.getTimestamp("MSG_DT_INC")));
		m.setTexto(rs.getString("MSG_TEXTO"));
		m.setTitulo(rs.getString("MSG_TITULO"));
		
		return m;
	}

	/* (non-Javadoc)
	 * @see tur.br.moradadosol.dao.MensagemDAO#getMensagemByCodigo(long)
	 */
	public Mensagem getMensagemByCodigo(long codigo) throws Exception {
		// TODO Auto-generated method stub
		return null;
	}

	/* (non-Javadoc)
	 * @see tur.br.moradadosol.dao.MensagemDAO#getMensagemByTitulo(java.lang.String)
	 */
	public Mensagem getMensagemByTitulo(String t) throws Exception {
		// TODO Auto-generated method stub
		return null;
	}

	/* (non-Javadoc)
	 * @see tur.br.moradadosol.dao.MensagemDAO#insert(tur.br.moradadosol.model.Mensagem)
	 */
	public void insert(Mensagem m) throws Exception {
		// TODO Auto-generated method stub

	}

	/* (non-Javadoc)
	 * @see tur.br.moradadosol.dao.MensagemDAO#update(tur.br.moradadosol.model.Mensagem)
	 */
	public void update(Mensagem m) throws Exception {
		// TODO Auto-generated method stub

	}

}
